import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
import tailwindcss from 'tailwindcss';
import autoprefixer from 'autoprefixer';
import viteCompression from 'vite-plugin-compression';

export default defineConfig({
    resolve: {
        extensions: ['.vue', '.ts', '.js', '.json'],
        alias: {
            '@': path.resolve(__dirname, '.', 'src'),
            '@img': path.resolve(__dirname, '.', 'src/assets'),
            '@utils': path.resolve(__dirname, '.', 'src/utils'),
        },
    },
    // 运行端口
    server: {
        port: 5100,
        // 配置代理
        proxy: {
            // 匹配所有以 /api 开头的请求（可自定义，比如 /api 或 /backend）
            '/api': {
                target: 'http://192.168.1.120:8787', // 目标服务器地址
                changeOrigin: true, // 允许跨域
                rewrite: (path) => path.replace(/^\/api/, '') // 去掉请求路径中的 /api 前缀
            }
        }
    },
    plugins: [
        vue(),
        viteCompression({
            // 压缩
            verbose: true,
            disable: false,
            threshold: 10240,
            algorithm: 'gzip',
            ext: '.gz',
        }),
    ],
    build: {
        assetsInlineLimit: 0, // 原为4k 改为0 避免小文件不进行打包
        rollupOptions: {
            // 打包后文件名不哈希化
            output: {
                assetFileNames: `assets/[name].[ext]`,
            },
        },
    },
    css: {
        postcss: {
            plugins: [tailwindcss, autoprefixer],
        },
    },
});
